<?php

class Solicitudes_Model_DbTable_Sintesis extends Zend_Db_Table_Abstract {
	
	protected $_name = 'sintesisprograma_cna';
	protected $_primary = 'codsintesis';
	protected $_rowClass = 'App_Audit_Row'; //no se necesita que se audite
	
	
	public function cargarSintesis($codigo,$codproceso,$codestado) {
	    $select = $this->select(self::SELECT_WITH_FROM_PART)
	                   ->where("codigointerno=?",$codigo)
	                   ->where("codproceso=?",$codproceso)
	                   ->where("codestado=?",$codestado);
		return $select->query()->fetch();
	}
	
	public function getcodigoAdjunto($codsintesis) {
		return $this->getAdapter()->fetchOne("SELECT coddocumento FROM documentosprograma_cna WHERE codsintesis={$codsintesis}");
	}
	public function getAdjuntosSintesis($codsintesis) {
	    $select = $this->select()
	                   ->from(array("dp"=>"documentosprograma_cna"))
	                   ->join(array("d"=>"documentos_cna"),"dp.coddocumento=d.coddocumento","*")
	                   ->where("dp.codsintesis=?",$codsintesis);
	    $select->setIntegrityCheck(false);
		return $select->query()->fetchAll();
	}
	
	public function actualizarCompletitud($codsintesis) {
		$select = $this->getAdapter()->query("SELECT * FROM actualizar_completitud({$codsintesis})");
	}
	
	public function CopiarDatosProceso($codproceso){
	    $this->getAdapter()->beginTransaction();
	    try {
	        $estado_ci = Solicitudes_Model_Historicoprocesos::CONDICIONES_INICIALES;
	        $estado_au = Solicitudes_Model_Historicoprocesos::EN_AUTOEVALUACION;
	        
		    $this->getAdapter()->query("INSERT INTO sintesisprograma_cna (codproceso,codestado,contenido,codigointerno)
		    					    	SELECT codproceso,{$estado_au},contenido,codigointerno
		    					    	FROM sintesisprograma_cna sp
		    					    	WHERE sp.codproceso={$codproceso}
		    					    	AND sp.codestado={$estado_ci}");

		    $this->getAdapter()->query("INSERT INTO documentosprograma_cna (coddocumento,codsintesis)
		    						    SELECT d.coddocumento,(SELECT s1.codsintesis FROM sintesisprograma_cna s1 WHERE s.codigointerno=s1.codigointerno AND s1.codproceso={$codproceso} AND s1.codestado={$estado_au} ORDER BY s1.codsintesis DESC LIMIT 1) AS codsintesis
									    FROM documentosprograma_cna d,sintesisprograma_cna s
									    WHERE d.codsintesis=s.codsintesis AND s.codproceso={$codproceso} AND s.codestado={$estado_ci}");
		    
		    $this->getAdapter()->query("INSERT INTO docentesproceso_cna (codproceso,codestado,tipodedicacion,tiponivel,numeroano,ano,periodo,cantidad)
		    							SELECT {$codproceso},{$estado_au},tipodedicacion,tiponivel,numeroano,ano,periodo,cantidad
		    							FROM docentesproceso_cna i WHERE i.codproceso='{$codproceso}' AND i.codestado='{$estado_ci}'");
		    
		    $this->getAdapter()->query("INSERT INTO docentesvisitaproceso_cna (codproceso,codestado,codclasificacionarea,nombres,apellidos,estadia,institucion,actividades,tipoestadia)
		    							SELECT {$codproceso},{$estado_au},codclasificacionarea,nombres,apellidos,estadia,institucion,actividades,tipoestadia
		    							FROM docentesvisitaproceso_cna i WHERE i.codproceso='{$codproceso}' AND i.codestado='{$estado_ci}'");

		    $this->getAdapter()->query("INSERT INTO estudiantesproceso_cna (codproceso,codestado,tipoestudiante,numeroano,ano,periodo,cantidad)
		    							SELECT {$codproceso},{$estado_au},tipoestudiante,numeroano,ano,periodo,cantidad
		    							FROM estudiantesproceso_cna i WHERE i.codproceso='{$codproceso}' AND i.codestado='{$estado_ci}'");
		    
		    $this->getAdapter()->query("INSERT INTO instalacionesfisicasproceso_cna (codproceso,codestado,codinstalacion,tipotenencia,cantidad,area)
		    							SELECT {$codproceso},{$estado_au},codinstalacion,tipotenencia,cantidad,area
		    							FROM instalacionesfisicasproceso_cna i WHERE i.codproceso='{$codproceso}' AND i.codestado='{$estado_ci}'");
		    
		    $this->getAdapter()->query("INSERT INTO recursosproceso_cna (codproceso,codestado,subtiporecurso,nombrerecurso,tiporecurso,cantidad,ubicacion,descripcion,tipounidadacademica,otrorecurso,otraunidad)
		    							SELECT {$codproceso},{$estado_au},subtiporecurso,nombrerecurso,tiporecurso,cantidad,ubicacion,descripcion,tipounidadacademica,otrorecurso,otraunidad
		    							FROM recursosproceso_cna i WHERE i.codproceso='{$codproceso}' AND i.codestado='{$estado_ci}'");
		    
		    $this->getAdapter()->commit();
	    } catch(Exception $e) {
			$this->getAdapter()->rollBack();
			throw $e;
		}
	}
	
}//fin de la clase
